using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using FoundationLib.Ifc.Domain;


namespace FoundationLib.Ifc.Domain 
{
	/// <summary>
	/// Provides an interface for versioned events
	/// </summary>
	public interface IVersionedEvent : IEvent  
	{
		/// <summary>
		/// Gets the date and time when this event was created
		/// </summary>
		DateTime Created
		{
			get;
		}

		/// <summary>
		/// Gets or sets the new version of the aggregate after the change was applied
		/// </summary>
		int Version
		{
			get;
			set;
		}
	}

}